![]() |
![]() |
|
rtk 20062006.1.1 (napiši)Odstavki 1. podnalogaNalogaV nekem besedilu so odstavki ločeni s praznimi vrsticami. Napiši funkcijo
Vhodni podatkiBesedilo v obliki niza. Izhodni podatkiUrejeno besedilo v obliki niza. Primer
Uradna rešitevdef odstavki(besedilo): """Skupine praznih vrstic v besedilu nadomesti z eno samo prazno vrstico.""" vrstice = besedilo.split('\n') izpis = '' prejsnja_prazna = False for vrstica in vrstice: if vrstica == '' and prejsnja_prazna: continue elif vrstica == '' and not prejsnja_prazna: prejsnja_prazna = True izpis += vrstica + '\n' else: prejsnja_prazna = False izpis += vrstica + '\n' return izpis[:-1] 2006.1.2 (napiši)Sneg 1. podnalogaLetošnja zima je bila radodarna s snegom. Da bi opazovali časovno spreminjanje količine zapadlega snega, lahko za vsak dan posebej merimo, koliko snega je na novo zapadlo tisti dan in koliko se ga je stalilo (ali pa se je snežna odeja stanjšala zaradi sesedanja). Iz razlike med tema dvema količinama lahko ugotovimo, za koliko se je povečala ali zmanjšala debelina snežne odeje. Od toplih jesenskih dni naprej vsak dan spremljamo dve meritivi:
NalogaNapiši funkcijo Vhodni podatkiSeznam parov (novozapadli sneg, znižanje snežne odeje). Izhodni podatkiSeznam s podatki o debelini snežne odeje za Primer
Uradna rešitevdef sneg(podatki): """Prejme seznam zaporednih n dni, s podatki o zvišanju in znižanju snežne odeje, ter vrne seznam s količinami snega ob koncu dneva za n zaporednih dni.""" snezna_odeja = 0 kolicina_snega = [] for dan in podatki: snezna_odeja += dan[0] - dan[1] kolicina_snega.append(snezna_odeja) return kolicina_snega # negativnih vrednosti ne rabimo obravnavati posebej, saj so podatki realni (npr. snega na začetku nikoli ni) 2006.1.3 (napiši)Sudoku 1. podnalogaSudoku je številčna križanka. Igralno polje velikosti V igralno polje igralec vpisuje števila od
NalogaNapiši funkcijo Vhodni podatkiSeznam seznamov, ki predstavlja igralno polje. Izhodni podatkiNiz Primer
Uradna rešitevdef sudoku(resitev): """Vrne 'PRAVILNA', če rešitev sudokuja ustreza vsem zahtevanim pravilom, in 'NAPAČNA' sicer.""" vrsta = [[] for i in range(9)] stolpec = [[] for i in range(9)] kvadratek = [[] for i in range(9)] for i in range(9): for j in range(9): stevilo = resitev[i][j] vrsta[i].append(stevilo) stolpec[j].append(stevilo) kvadratek[i//3 * 3 + j//3].append(stevilo) for i in range(9): stevila = {1, 2, 3, 4, 5, 6, 7, 8, 9} if set(vrsta[i]) != stevila or set(stolpec[i]) != stevila or set(kvadratek[i]) != stevila: return 'NAPAČNA' return 'PRAVILNA' 2006.1.4 (napiši)Naraščajoče besede 1. podnalogaV nekaterih besedah so črke že urejene naraščajoče po abecedi: vsaka črka take besede pride v abecedi kasneje kot prejšnja črka te besede. Takšnim besedam pravimo naraščajoče besede. Primer naraščajoče besede je AGILNOST (G je v abecedi kasneje kot A, I je kasneje kot G in tako naprej). NalogaNapiši funkcijo Vhodni podatkiSeznam besed. Izhodni podatkiNajdaljša naraščajoča beseda. Primer
Uradna rešitevdef narascajoce_besede(besede): """Sprejme seznam besed in vrne najdaljšo naraščajočo besedo.""" najdaljsa = '' for beseda in besede: dolzina = len(beseda) if dolzina > len(najdaljsa): narasca = True for i in range(1, dolzina): if beseda[i] < beseda[i-1]: narasca = False break if narasca: najdaljsa = beseda return najdaljsa 2006.1.5 (napiši)Podnapisi 1. podnalogaNek predvajalnik filmov bi radi dopolnili tako, da bo znal prikazovati tudi podnapise. Te imamo podane v samostojnih datotekah, ločeno od filma, tako da lahko k istemu filmu pritaknemo podnapise v različnih jezikih. Ob predvajanju je treba tik preden se prikaže posamezna sličica filma ugotoviti, kateri podnapis pripada tej sličici (če sploh kakšen). NalogaNapiši funkcijo Primer podnapisovDatoteka s podnapisi izgleda kot je prikazano spodaj. Najprej je naveden časovni interval v katerem je prikazan podnapis in nato še dejanski podnapis. Sledi prazna vrstica. Privzameš lahko, da noben podnapis ni podan v dveh vrsticah.
Vhodni podatkiDatoteka s podnapisi in čas sličice ob katerem se ta prikaže v filmu. Izhodni podatkiPodnapis, ki ustreza sličici. Primer
Uradna rešitevdef podnapisi(txt, cas_slicice): """Iz datoteke txt izpiše podnapis, ki v filmu priprada sličici s številko st_slicice.""" with open(txt, 'r', encoding='utf-8') as podnapisi: pravi_podnapis = False for vrstica in podnapisi: if pravi_podnapis: vrstica = vrstica.strip() return vrstica if '-->' in vrstica: zacetek, konec = vrstica.split(' --> ') if zacetek <= cas_slicice <= konec: pravi_podnapis = True return ''Mesto objave ob koncu projekta 15.9.2018 |